多執行緒(Multithreading)讓你能夠同時執行多個執行緒(threads),這對於處理並行任務、提高程式的性能和資源利用效率非常好用。
執行緒(Thread)是系統中能夠使用的最小單位,每個執行緒都有自己獨立的執行路徑,而進程(Process)是系統資源分配的基本單位,每個進程都有自己獨立的地址空間和資源。
有兩種主要方法可以創建執行緒,繼承thread類和實作runnable介面。
1.繼承thread類透過重寫run()方法來去定義執行緒要執行的內容,並使用start()去啟動執行緒。它的優點是很直接,適合用來執行簡單的內容;缺點是只能夠繼承一個,不能重複使用。
舉例來說
class MyThread extends Thread {
@Override
public void run() {
System.out.println("MyThread is running.");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); //啟動執行緒
}
}
這裡先創建了一個MyThread類,繼承Thread,並重寫run()來輸出一條消息。最後在main方法中再創建一個MyThread的實例並啟動它。
2.實作runnable介面並將其傳遞給thread類是另一種更靈活也更常見的方法,它的優點是不會限制你只能繼承一個類,可以讓runnable介面同時繼承多個類,所以也更適合共享資源;但缺點是需要多做一個創建thread類並傳遞runnable的步驟。
舉例來說
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("MyRunnable is running.");
}
}
public class Main {
public static void main(String[] args) {
Runnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start(); //啟動執行緒
}
}
先創建了一個MyRunnable類實作了Runnable介面,並重寫了run()來輸出消息。然後在main方法中,我們再創建了一個Thread,並將MyRunnable實例傳遞給它,最後啟動執行緒。